import demo from "./modules/demo";
import hall from "./modules/hall";

import layout from "@/layout/";

/**
 * 在主框架内显示
 */
const frameIn = [
  {
    path: "/",
    redirect: { name: "hall" },
    component: layout,
    children: [
      // 首页 必须 name:index
      {
        path: "index",
        name: "index",
        meta: {
          auth: false // 如果是需要登录则改为true
        },
        component: () => import("@/pages/hall/index")
      },
      // 刷新页面 必须保留
      {
        path: "refresh",
        name: "refresh",
        hidden: true,
        component: {
          beforeRouteEnter(to, from, next) {
            next(vm => vm.$router.replace(from.fullPath));
          },
          render: h => h()
        }
      },
      // 页面重定向 必须保留
      {
        path: "redirect/:route*",
        name: "redirect",
        hidden: true,
        component: {
          beforeRouteEnter(to, from, next) {
            // next(vm => vm.$router.replace(JSON.parse(from.params.route)))
            // next("/" + to.params.route);
            next(vm => vm.$router.replace("/" + to.params.route));
          },
          render: h => h()
        }
      }
    ]
  },
  demo,
  hall
];

/**
 * 在主框架之外显示
 */
const frameOut = [
  // 登录
  {
    path: "/login",
    name: "login",
    component: () => import("@/pages/login")
  }
];

/**
 * 错误页面
 */
const errorPage = [
  // 404
  {
    path: "*",
    name: "404",
    component: () => import("@/pages/error/404")
  }
];

// 导出需要显示菜单的
export const frameInRoutes = frameIn;

// 重新组织后导出
export default [...frameIn, ...frameOut, ...errorPage];
